home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_urlparse.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  9KB  |  169 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from test import test_support
  5. import unittest
  6. import urlparse
  7. RFC1808_BASE = 'http://a/b/c/d;p?q#f'
  8. RFC2396_BASE = 'http://a/b/c/d;p?q'
  9.  
  10. class UrlParseTestCase(unittest.TestCase):
  11.     
  12.     def checkRoundtrips(self, url, parsed, split):
  13.         result = urlparse.urlparse(url)
  14.         self.assertEqual(result, parsed)
  15.         result2 = urlparse.urlunparse(result)
  16.         self.assertEqual(result2, url)
  17.         result = urlparse.urlsplit(url)
  18.         self.assertEqual(result, split)
  19.         result2 = urlparse.urlunsplit(result)
  20.         self.assertEqual(result2, url)
  21.  
  22.     
  23.     def test_roundtrips(self):
  24.         testcases = [
  25.             ('file:///tmp/junk.txt', ('file', '', '/tmp/junk.txt', '', '', ''), ('file', '', '/tmp/junk.txt', '', '')),
  26.             ('imap://mail.python.org/mbox1', ('imap', 'mail.python.org', '/mbox1', '', '', ''), ('imap', 'mail.python.org', '/mbox1', '', '')),
  27.             ('mms://wms.sys.hinet.net/cts/Drama/09006251100.asf', ('mms', 'wms.sys.hinet.net', '/cts/Drama/09006251100.asf', '', '', ''), ('mms', 'wms.sys.hinet.net', '/cts/Drama/09006251100.asf', '', '')),
  28.             ('svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/', ('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/', '', '', ''), ('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/', '', ''))]
  29.         for url, parsed, split in testcases:
  30.             self.checkRoundtrips(url, parsed, split)
  31.         
  32.  
  33.     
  34.     def test_http_roundtrips(self):
  35.         testcases = [
  36.             ('://www.python.org', ('www.python.org', '', '', '', ''), ('www.python.org', '', '', '')),
  37.             ('://www.python.org#abc', ('www.python.org', '', '', '', 'abc'), ('www.python.org', '', '', 'abc')),
  38.             ('://www.python.org?q=abc', ('www.python.org', '', '', 'q=abc', ''), ('www.python.org', '', 'q=abc', '')),
  39.             ('://www.python.org/#abc', ('www.python.org', '/', '', '', 'abc'), ('www.python.org', '/', '', 'abc')),
  40.             ('://a/b/c/d;p?q#f', ('a', '/b/c/d', 'p', 'q', 'f'), ('a', '/b/c/d;p', 'q', 'f'))]
  41.         for scheme in ('http', 'https'):
  42.             for url, parsed, split in testcases:
  43.                 url = scheme + url
  44.                 parsed = (scheme,) + parsed
  45.                 split = (scheme,) + split
  46.                 self.checkRoundtrips(url, parsed, split)
  47.             
  48.         
  49.  
  50.     
  51.     def checkJoin(self, base, relurl, expected):
  52.         self.assertEqual(urlparse.urljoin(base, relurl), expected, (base, relurl, expected))
  53.  
  54.     
  55.     def test_unparse_parse(self):
  56.         for u in [
  57.             'Python',
  58.             './Python']:
  59.             self.assertEqual(urlparse.urlunsplit(urlparse.urlsplit(u)), u)
  60.             self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
  61.         
  62.  
  63.     
  64.     def test_RFC1808(self):
  65.         self.checkJoin(RFC1808_BASE, 'g:h', 'g:h')
  66.         self.checkJoin(RFC1808_BASE, 'g', 'http://a/b/c/g')
  67.         self.checkJoin(RFC1808_BASE, './g', 'http://a/b/c/g')
  68.         self.checkJoin(RFC1808_BASE, 'g/', 'http://a/b/c/g/')
  69.         self.checkJoin(RFC1808_BASE, '/g', 'http://a/g')
  70.         self.checkJoin(RFC1808_BASE, '//g', 'http://g')
  71.         self.checkJoin(RFC1808_BASE, 'g?y', 'http://a/b/c/g?y')
  72.         self.checkJoin(RFC1808_BASE, 'g?y/./x', 'http://a/b/c/g?y/./x')
  73.         self.checkJoin(RFC1808_BASE, '#s', 'http://a/b/c/d;p?q#s')
  74.         self.checkJoin(RFC1808_BASE, 'g#s', 'http://a/b/c/g#s')
  75.         self.checkJoin(RFC1808_BASE, 'g#s/./x', 'http://a/b/c/g#s/./x')
  76.         self.checkJoin(RFC1808_BASE, 'g?y#s', 'http://a/b/c/g?y#s')
  77.         self.checkJoin(RFC1808_BASE, 'g;x', 'http://a/b/c/g;x')
  78.         self.checkJoin(RFC1808_BASE, 'g;x?y#s', 'http://a/b/c/g;x?y#s')
  79.         self.checkJoin(RFC1808_BASE, '.', 'http://a/b/c/')
  80.         self.checkJoin(RFC1808_BASE, './', 'http://a/b/c/')
  81.         self.checkJoin(RFC1808_BASE, '..', 'http://a/b/')
  82.         self.checkJoin(RFC1808_BASE, '../', 'http://a/b/')
  83.         self.checkJoin(RFC1808_BASE, '../g', 'http://a/b/g')
  84.         self.checkJoin(RFC1808_BASE, '../..', 'http://a/')
  85.         self.checkJoin(RFC1808_BASE, '../../', 'http://a/')
  86.         self.checkJoin(RFC1808_BASE, '../../g', 'http://a/g')
  87.         self.checkJoin(RFC1808_BASE, '', 'http://a/b/c/d;p?q#f')
  88.         self.checkJoin(RFC1808_BASE, '../../../g', 'http://a/../g')
  89.         self.checkJoin(RFC1808_BASE, '../../../../g', 'http://a/../../g')
  90.         self.checkJoin(RFC1808_BASE, '/./g', 'http://a/./g')
  91.         self.checkJoin(RFC1808_BASE, '/../g', 'http://a/../g')
  92.         self.checkJoin(RFC1808_BASE, 'g.', 'http://a/b/c/g.')
  93.         self.checkJoin(RFC1808_BASE, '.g', 'http://a/b/c/.g')
  94.         self.checkJoin(RFC1808_BASE, 'g..', 'http://a/b/c/g..')
  95.         self.checkJoin(RFC1808_BASE, '..g', 'http://a/b/c/..g')
  96.         self.checkJoin(RFC1808_BASE, './../g', 'http://a/b/g')
  97.         self.checkJoin(RFC1808_BASE, './g/.', 'http://a/b/c/g/')
  98.         self.checkJoin(RFC1808_BASE, 'g/./h', 'http://a/b/c/g/h')
  99.         self.checkJoin(RFC1808_BASE, 'g/../h', 'http://a/b/c/h')
  100.  
  101.     
  102.     def test_RFC2396(self):
  103.         self.checkJoin(RFC2396_BASE, '?y', 'http://a/b/c/?y')
  104.         self.checkJoin(RFC2396_BASE, ';x', 'http://a/b/c/;x')
  105.         self.checkJoin(RFC2396_BASE, 'g:h', 'g:h')
  106.         self.checkJoin(RFC2396_BASE, 'g', 'http://a/b/c/g')
  107.         self.checkJoin(RFC2396_BASE, './g', 'http://a/b/c/g')
  108.         self.checkJoin(RFC2396_BASE, 'g/', 'http://a/b/c/g/')
  109.         self.checkJoin(RFC2396_BASE, '/g', 'http://a/g')
  110.         self.checkJoin(RFC2396_BASE, '//g', 'http://g')
  111.         self.checkJoin(RFC2396_BASE, 'g?y', 'http://a/b/c/g?y')
  112.         self.checkJoin(RFC2396_BASE, '#s', 'http://a/b/c/d;p?q#s')
  113.         self.checkJoin(RFC2396_BASE, 'g#s', 'http://a/b/c/g#s')
  114.         self.checkJoin(RFC2396_BASE, 'g?y#s', 'http://a/b/c/g?y#s')
  115.         self.checkJoin(RFC2396_BASE, 'g;x', 'http://a/b/c/g;x')
  116.         self.checkJoin(RFC2396_BASE, 'g;x?y#s', 'http://a/b/c/g;x?y#s')
  117.         self.checkJoin(RFC2396_BASE, '.', 'http://a/b/c/')
  118.         self.checkJoin(RFC2396_BASE, './', 'http://a/b/c/')
  119.         self.checkJoin(RFC2396_BASE, '..', 'http://a/b/')
  120.         self.checkJoin(RFC2396_BASE, '../', 'http://a/b/')
  121.         self.checkJoin(RFC2396_BASE, '../g', 'http://a/b/g')
  122.         self.checkJoin(RFC2396_BASE, '../..', 'http://a/')
  123.         self.checkJoin(RFC2396_BASE, '../../', 'http://a/')
  124.         self.checkJoin(RFC2396_BASE, '../../g', 'http://a/g')
  125.         self.checkJoin(RFC2396_BASE, '', RFC2396_BASE)
  126.         self.checkJoin(RFC2396_BASE, '../../../g', 'http://a/../g')
  127.         self.checkJoin(RFC2396_BASE, '../../../../g', 'http://a/../../g')
  128.         self.checkJoin(RFC2396_BASE, '/./g', 'http://a/./g')
  129.         self.checkJoin(RFC2396_BASE, '/../g', 'http://a/../g')
  130.         self.checkJoin(RFC2396_BASE, 'g.', 'http://a/b/c/g.')
  131.         self.checkJoin(RFC2396_BASE, '.g', 'http://a/b/c/.g')
  132.         self.checkJoin(RFC2396_BASE, 'g..', 'http://a/b/c/g..')
  133.         self.checkJoin(RFC2396_BASE, '..g', 'http://a/b/c/..g')
  134.         self.checkJoin(RFC2396_BASE, './../g', 'http://a/b/g')
  135.         self.checkJoin(RFC2396_BASE, './g/.', 'http://a/b/c/g/')
  136.         self.checkJoin(RFC2396_BASE, 'g/./h', 'http://a/b/c/g/h')
  137.         self.checkJoin(RFC2396_BASE, 'g/../h', 'http://a/b/c/h')
  138.         self.checkJoin(RFC2396_BASE, 'g;x=1/./y', 'http://a/b/c/g;x=1/y')
  139.         self.checkJoin(RFC2396_BASE, 'g;x=1/../y', 'http://a/b/c/y')
  140.         self.checkJoin(RFC2396_BASE, 'g?y/./x', 'http://a/b/c/g?y/./x')
  141.         self.checkJoin(RFC2396_BASE, 'g?y/../x', 'http://a/b/c/g?y/../x')
  142.         self.checkJoin(RFC2396_BASE, 'g#s/./x', 'http://a/b/c/g#s/./x')
  143.         self.checkJoin(RFC2396_BASE, 'g#s/../x', 'http://a/b/c/g#s/../x')
  144.  
  145.     
  146.     def test_urldefrag(self):
  147.         for url, defrag, frag in [
  148.             ('http://python.org#frag', 'http://python.org', 'frag'),
  149.             ('http://python.org', 'http://python.org', ''),
  150.             ('http://python.org/#frag', 'http://python.org/', 'frag'),
  151.             ('http://python.org/', 'http://python.org/', ''),
  152.             ('http://python.org/?q#frag', 'http://python.org/?q', 'frag'),
  153.             ('http://python.org/?q', 'http://python.org/?q', ''),
  154.             ('http://python.org/p#frag', 'http://python.org/p', 'frag'),
  155.             ('http://python.org/p?q', 'http://python.org/p?q', ''),
  156.             (RFC1808_BASE, 'http://a/b/c/d;p?q', 'f'),
  157.             (RFC2396_BASE, 'http://a/b/c/d;p?q', '')]:
  158.             self.assertEqual(urlparse.urldefrag(url), (defrag, frag))
  159.         
  160.  
  161.  
  162.  
  163. def test_main():
  164.     test_support.run_unittest(UrlParseTestCase)
  165.  
  166. if __name__ == '__main__':
  167.     test_main()
  168.  
  169.